L’algorithmique et la programmation - 2de

Python

Exercice 1 : PGCD - Algorithme d'Euclide (inspiré par Bac S Antilles-Guyane 2015 pour spé) - Python

Pour deux entiers naturels non nuls \(q\) et \(s\), on note \(\operatorname{r}{\left (q,s \right )}\) le reste dans la division euclidienne de \(q\) et \(s\). On considère l'algorithme suivant :

import r

q = int(input('Rentrez la valeur de q : '))
s = int(input('Rentrez la valeur de s : '))

k = r(q, s)
while k != 0:
    q = s
    s = k
    k = r(q, s)
print(s)
if ???:
    print('q et s sont premiers entre eux')
else:
    print('q et s ne sont pas premiers entre eux')

Faire fonctionner cet algorithme avec \(q=29\) et \(s=26\) en indiquant les valeurs de \(q\), \(s\) et \(k\) à chaque étape.

{"data": [["29", "?", "?", "?"], ["26", "?", "?", "?"], ["?", "?", "?", "?"]], "header_left": ["q", "s", "k"]}

Cet algorithme donne en sortie le PGCD des entiers naturels non nuls \(q\) et \(s\). Par quelle expression doit on compléter la condition ??? pour qu’il indique si deux entiers naturels non nuls \(q\) et \(s\) sont premiers entre eux ou non.

Exercice 2 : Dichotomie vers racine de polynôme 2nd degré (inspiré par Bac S Asie 2015) - Python

On considère l'algorithme ci-dessous :

import f

a = float(input('Rentrez la valeur de a : '))
b = float(input('Rentrez la valeur de b : '))

while -a + b > 0.3:
    x = (a + b)/2
    if f(a)*f(x) > 0:
        a = x
    else:
        b = x

print((a + b)/2)

Si \(f(x) = -8 + 3x^{2}\) et que l'utilisateur entre les valeurs \(a=1\) et \(b=2\), quelle est la valeur affichée en sortie ?

Exercice 3 : Boucle non bornée while et taux d'intéret (problème)

On place \( 2\:700 \) € sur un compte qui est rémunéré à \( 13 \)% l’année. Il s'agit d'un compte à intérêts composés.
On souhaite déterminer le nombre d’années qu’il faut attendre afin que notre épargne devienne supérieure ou égale à \( 6\:000 \)€.

Exemple :
Prenons un capital de 100 € à un taux annuel de 5% d'intérêts composés sur 2 ans.
Le capital sera de : 100 + 100 × (5 / 100) = 105 € à la fin de la première année.
Puis : 105 + 105 × (5 / 100) = 110,25 € à la fin de la deuxième année.

Compléter le script suivant afin de répondre à un problème de ce type en prenant soin d'utiliser les variables proposées dans la définition de la fonction.
{"initCode": "%{def epargne(init, seuil, remuneration):}s\n\t# remuneration est un pourcentage, compris entre 0 et 100.\n\t%{u = }s\n\t%{nbr_annee = 0}s\n\t%{while}s%{:}s\n\t\t%{u = }s\n\t\t%{nbr_annee = }s\n\t%{return }s", "outputs": [[], [], [], [], [], [], [], [], [], []], "studentCode": "", "inputs": [[2700, 6000, 13], [2700, 4700, 1], [2500, 6300, 14], [2500, 6400, 11], [3900, 7100, 7], [2800, 6700, 11], [2300, 4600, 6], [2700, 5100, 6], [2300, 4900, 5], [3400, 6800, 18]], "nbAttemptsLeft": 2}

Essais restants : 2

En faisant appel à la fonction epargne(2\:700, 6\:000, 13) , déterminer le résultat de la question posée.

Exercice 4 : Fonction qui calcule l'aire d'une figure plane de référence

Définir une fonction Python qui renvoie l'aire d'un triangle à partir de sa base et sa hauteur passées en paramètre.
La fonction ne doit pas afficher le résultat avecprint()
{"nbAttemptsLeft": 2, "studentCode": "", "inputs": [[0, 1], [2, 3], [4, 5], [11, 14]], "initCode": "%{def airetriangle(base, hauteur):}s\n\t", "outputs": [[], [], [], []]}

Essais restants : 2

Exercice 5 : Question de cours 1 : Python

En Python, comment s’appelle la boucle permettant d'exécuter une suite d'instructions un nombre de fois défini ?
False